1. Field of the Invention
The present invention relates to an image data coding apparatus that codes image data through Wavelet transform and an image data server that transmits image data coded through Wavelet transform to a client via a network.
2. Description of the Related Art
There are image data servers in the related art that transmit pre-recorded images at a client's request.
Such image data servers include those that record in advance uncompressed image data which have not been coded and those that record in advance coded data obtained by compression-coding image data. The procedure of the processing implemented after a transmission request is received varies among these image data servers depending upon the format of the pre-recorded data.
For instance, when a transmission request from a client is received, an image data server in which uncoded, uncompressed image data have been recorded also obtains compression-related information indicating either the compression rate for the image data or the required quality of the restored image. Then, the image data server performs compression coding on the image data in conformance to the compression-related information thus obtained and transmits the coded image data to a client.
Image data servers in which coded data have been recorded include image data servers in which coded data having been coded through compression executed at a compression rate (approximately 1/10˜ 1/20) that allows the restored image to achieve a medium image quality are pre-recorded (hereafter referred to as “medium quality compression image data servers”). Such a “medium quality compression image data server” transmits the recorded coded data as they are upon receiving a transmission request from a client.
In addition, image data servers in which coded data have been recorded may be image data servers in which coded data obtained by compressing image data at a compression rate (approximately ¼˜⅛) that allows the restored image to achieve a high image quality are recorded in advance (hereafter referred to as “high quality compression image data servers”). A “high quality compression image data server” can respond to a request for transmission of a high quality image or a high resolution image issued by a client simply by transmitting the recorded coded data as they are. Furthermore, the high quality compression image data server can respond to a request for a transmission of a low quality image or a low resolution image the intent of which is to reduce the data volume by first decompressing the recorded coded data and then re-compression-coding the data at the compression rate conforming to the client's request.
As a new image data coding technology to replace the discrete cosine transform coding technology, Wavelet transform coding has been attracting a great deal of interest. At present, the Committee for Still Image Coding Standard jointly organized by ISO and ITU-T, is in the process of standardizing JPEG 2000 that adopts image data coding through Wavelet transform. It is to be noted that the standardization process for JPEG 2000 has been carried out in six separate parts, and the part (Part 1) that defines the core technology of JPEG 2000 was internationally standardized in December 2000.
FIGS. 7 and 8 present a flowchart of the operation performed in an image data server in the related art that adopts the coding technology defined in the JPEG 2000 Part 1. It is to be noted that the coding technology defined in JPEG 2000 Part 1 is adopted in the operation in the flowchart presented in FIGS. 7 and 8, which is performed by an image data server that records in advance uncoded, uncompressed image data in the RGB colorimetric system.
FIG. 9 is a functional block diagram of such an image data server in the related art.
As shown in FIG. 9, an image data server 100 in the related art includes an image recording device 101 that records in advance image data, a coding unit 102 that codes the image data through compression coding and a network interface unit 103 provided to achieve an interface with a client via a network.
The coding technology defined in the JPEG 2000 Part 1 that is adopted in the image data server 100 in the related art is explained below in reference to FIGS. 7 through 9. It is to be noted that the following explanation is given by assuming that the desired level of compression rate (level 0˜level 10) is provided to the network interface unit 103 as compression-related information for purposes of simplification.
First, the image data server 100 repeatedly makes a decision via the network interface unit 103 as to whether or not an image transmission request has been issued by a client (FIG. 7 S101).
Then, upon receiving an image transmission request, the image data server 100 obtains the compression-related information (the level of the desired compression rate) provided by a client via the network interface unit 103 (FIG. 7 S102).
The compression-related information thus obtained is provided to the coding unit 102.
The coding unit 102 reads out from the image recording device 101 the image data corresponding to the image to be transmitted and divides the image data into a plurality of rectangular areas (hereafter referred to as “tile images”) (FIG. 7 S103).
Next, the coding unit 102 implements color coordinate conversion on the individual tile images and thus generates image data in the YCbCr colorimetric system (FIG. 7 S104).
Then, the coding unit 102 sets a sub-sampling (culling) ratio for the individual color components (the Y component, the Cb component and the Cr component) of the image data based upon the compression-related information (FIG. 7 S105), and performs sub-sampling of the image data by culling the color difference components (the Cb component and the Cr component) in the image data based upon the sub-sampling ratio setting (FIG. 7 S106).
For instance, if the compression-related information (the desired level of the compression) indicates level 0˜level 3, the coding unit 102 sets the sub-sampling ratio for Y, Cb and Cr to “4:4:4”, whereas if the compression-related information indicates level 4˜level 7, the coding unit 102 sets the sub-sampling ratio for Y, Cb and Cr to “4:2:2”. If the compression-related information indicates level 8 or higher, the sub-sampling ratio for Y, Cb and Cr is set to “4:2:0”. (B) of FIG. 10 shows a state achieved by sub-sampling the color difference components with the sub-sampling ratio for Y, Cb and Cr set to “4:2:0”.
FIG. 11 illustrates the various sub-sampling ratios.
Next, the coding unit 102 breaks down each of the color components (the Y component, the Cb component and the Cr component) of the sub-sampled image data into a plurality of sub-bands (LL, LH, HL and HH) corresponding to varying resolutions, through discrete Wavelet transform implemented along two directions, i.e., the vertical direction and the horizontal direction (FIG. 7 S107).
The LL sub-band among these sub-bands undergoes a further discrete Wavelet transform and thus is broken down into a plurality of sub-bands (LL, LH, HL and HH). Each component in the image data is broken into sub-bands, as illustrated in (C) of FIG. 10 through the discrete Wavelet transform which is repeated recursively as described above. It is to be noted that in (C) of FIG. 10, breakdown level 0 is designated to the LL sub band and each of three sub-bands, LH, HL and HH, is designated as breakdown level 1, 2, . . . in order of the number of times of undergoing discrete Wavelet transform, with breakdown level 1 designated to a sub-band having undergone discrete Wavelet transform the greatest number of times.
Next, the coding unit 102 quantizes individual Wavelet transform coefficients in conformance to quantization step widths set for the individual sub-bands (FIG. 7 S108).
In the next step, the coding unit 102 divides each quantized Wavelet transform coefficient into blocks in a fixed size which are referred to as code blocks (FIG. 7 S109).
Then, the coding unit 102 expresses the quantized values of the Wavelet transform coefficients in the individual code blocks as a plurality of bit planes, executes entropy coding in units of individual bit planes and thus generates code data in correspondence to the individual code blocks (FIG. 7 S110).
Namely, coded data are generated in units of the individual code blocks for all the sub-bands in each color component.
Next, the coding unit 102 performs arithmetic coding on the coded data that have been generated as described above by employing an MQ coder (FIG. 7 S111).
The coding unit 102 then divides the coded data corresponding to all the coded blocks in conformance to a predetermined layer structure (FIG. 8 S112).
Next, the coding unit 102 groups the divided coded data into packets each containing coded data with a common breakdown level, a common layer and a common color component (FIG. 8 S113). It is to be noted that the packets are each constituted of a header and a body, with the attribute of the coded data constituting the body and the like stored in the header.
In the following step, the coding unit 102 arranges the packets in conformance to a predetermined scalability (e.g., SNR scalability) and generates a code stream achieving a data volume corresponding to the desired compression rate (FIG. 8 S114).
Then, the code stream thus generated is transmitted as the final coded data to a client via the network interface unit 103 (FIG. 8 S115).
As explained above, the image data server 100 in the related art that adopts the coding technology defined in the JPEG 2000, Part 1 realizes compression coding implemented at the desired compression rate requested by a client by executing the processing in step S108 and subsequent steps after sub-sampling the color difference components in the sub-sampling process executed in step S106 in FIG. 7.
However, when coding image data through compression coding as described above, the processing from FIG. 7 S102˜FIG. 8 S115 must be executed repeatedly each time an image transmission request from a client is received. For this reason, a heavy load is placed on the coding unit 102 and thus, a problem arises in that the image data server cannot respond quickly to a client's request for a transmission.
In addition, since it is necessary to record in advance uncoded, uncompressed image data in the image data server 100, the image recording device 101 must have a large storage capacity.
“The medium quality compression image data server” and the “high quality compression image data server” explained earlier that record coded data obtained through compression coding do not require a recording device with a large capacity.
However, the “medium quality compression image data server” is only capable of transmitting coded data obtained by compression coding at a predetermined compression rate (approximately 1/10˜ 1/20). For this reason, there are problems in that the data volume cannot be reduced when it is desired to transmit the image data with high efficiency and in that the image data server cannot respond to a client's request for transmission of a high quality image or a high resolution image.
In addition, if a client requests a transmission of a low quality image or a low resolution image, the “high quality compression image data server” must first decompress coded data having been performed with compression coding and then re-code the data through the processing such as that shown in FIG. 7 S102˜FIG. 8 S115. Thus, the image data server cannot respond quickly to the transmission request from a client. There is another problem in that since such re-coding cannot be implemented without first decompressing the data, the quality of the image reproduced based upon the coded data resulting from the re-coding processing becomes poor compared to the quality of the image reproduced based upon coded data obtained by compression coding of uncompressed image data.